package com.newstore.view;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import com.newstore.R;
import com.newstore.classes.Order;
import com.newstore.database.OrderDatabase;

/**
 * ListOrder est l'activité qui se lance après l'authentification d'un préparateur
 * Elle affiche la liste des commandes en attente
 * 
 * @author gprudhom
 * @version 1.0
 */
public class ListOrder extends Activity
{
	private ListView maListViewPerso;

	/** Called when the activity is first created. 
	 * Instancie les contrôles de l'activité
	 * */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listview);

		SQLiteDatabase myDb = Authentication.accessDB.open(true);
		OrderDatabase usDb = new OrderDatabase(myDb);
		final Vector<Order> listOrder = usDb.getOrdersInHold();
		Authentication.accessDB.close();

		maListViewPerso = (ListView) findViewById(R.id.listview);
		ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> map;

		/**
		 * Renseigne les champs avec la référence de la commande
		 */
		for (int i = 0; i < listOrder.size(); i++)
		{
			Order o = listOrder.get(i);
			Integer id = o.getId();
				String idd = id.toString();
			map = new HashMap<String, String>();
			map.put("nom", o.getReference());
			map.put("info", null);
			map.put("img", String.valueOf(R.drawable.arrow22));
			listItem.add(map);
		}

		SimpleAdapter mSchedule = new SimpleAdapter(this.getBaseContext(),
				listItem, R.layout.affichageitem, new String[]
				{ "img", "nom" , "info"}, new int[]
				{ R.id.img, R.id.nomItem, R.id.infoItem});

		// On attribut à notre listView l'adapter que l'on vient de créer
		maListViewPerso.setAdapter(mSchedule);

		// Enfin on met un écouteur d'événement sur notre listView
		maListViewPerso.setOnItemClickListener(new OnItemClickListener()
		{
			// @Override
			@SuppressWarnings("unchecked")
			public void onItemClick(AdapterView<?> a, View v, int position,
					long id)
			{
				HashMap<String, String> map = (HashMap<String, String>) maListViewPerso
						.getItemAtPosition(position);
				
				startListProduct(listOrder.get(position));
			}
		});
	}
	
	/**
     * Lance l'activité pour l'affichage des produits de la commande selectionnée
     * 
     * @param pOrder
     *            La commande selectionnée
     */
	public void startListProduct(Order pOrder)
	{
		Intent intent = new Intent(this, ListProduct.class);
		intent.putExtra("id", pOrder.getId());
		startActivity(intent);
	}
}